package com.blazegame.logging;

/**
 * Main logger interface for logging things
 */
public interface Logger {
	/**
	 * Case insensitive String constant used to retrieve the name of the root
	 * logger.
	 * 
	 * @since 1.3
	 */
	final public String ROOT_LOGGER_NAME = "ROOT";
	
	void trace(String msg, String... args);

	void trace(String msg, Throwable ex, String... args);

	boolean isTraceEnabled();

	void debug(String msg, String... args);

	void debug(String msg, Throwable ex, String... args);

	boolean isDebugEnabled();

	void info(String msg, String... args);
	
	void info(String msg, Throwable ex, String... args);

	boolean isInfoEnabled();
	
	/**
	   * Is the logger instance enabled for the WARN level?
	   * @return True if this Logger is enabled for the WARN level,
	   * false otherwise.
	   */
	  public boolean isWarnEnabled();

	void warn(String msg, String... args);

	void warn(String msg, Throwable ex, String... args);

	 /**
	   * Is the logger instance enabled for the ERROR level?
	   * @return True if this Logger is enabled for the ERROR level,
	   * false otherwise.
	   */
	  public boolean isErrorEnabled();

	void error(String msg, String... args);

	void error(String msg, Throwable ex, String... args);


	void fatal(String msg, String... args);

	void fatal(String msg, Throwable ex, String... args);

}
